package cn.yitun.chat.yitunserverimbase.dao.group;

import cn.yitun.chat.yitunservercommonlib.crud.yitun.CrudDao;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.group.GroupInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 
 * @author chenyitun
 * @email chenyitun@163.com
 * @date 2020-05-29 21:37:05
 */
@Mapper
public interface GroupDao extends CrudDao<GroupDto, GroupInfo, GroupVo> {

	int absDel(Long id);

	int batchAbsDel(Long[] ids);

	/**
	 * 通过uuid获取群组
	 */
	Long getGroupIdByCode(@Param("code") String code);

	/**
	 * 通过uuid获取群组
	 */
	GroupVo getGroupByCode(@Param("code") String code);

	/**
	 * 更新群头像
	 */
	int updateAvatar(@Param("id") Long id,@Param("avatar") String avatar);
	/**
	 * 更新头
	 */
	int updateHead(@Param("id") Long id,@Param("head") Long head);

	/**
	 * 根据用户id，获取用户已经加入或者拥有的群
	 * @param userId
	 * @return
	 */
	List<GroupVo> getGroupCategoryMemberGroupListByUserId(@Param("userId") Long userId);

	/**
	 * 获取群组
	 */
	List<GroupVo> getGroupList(@Param("list") List<Long> ids);

	/**
	 * 更新名称，头像，介绍
	 */
	int updateGroupInfo(GroupDto group);

	/**
	 * 获取列表 剔除已经关联的群组
	 */
    List<GroupVo> queryGroupList(GroupDto groupQuery);
}
